import unittest

import paramunittest

from mathFunction import MyTestCase

"""
通过 单元测试 框架  unittest  进行 测试
    1. 导入 unittest 的模块
    2. 如果 unittest 不存在 就使用 pip install unittest
    
    3. 断言 
"""



# 创建一个  测试类
class MyTestCaseTwo(unittest.TestCase):
    """测试mathFunction.py"""
    
    # 定义一个 测试  mathFunction.py 中的  加法方法
    """
        在unittest 中 想要 忽略执行 某一个 测试方法 有四种
            1. @unittest.skip()
            2. @unittest.skipIf()
            3. @unittest.skipUnless()
            4. self.skipTest()
    """

    # @unittest.skip(reason="我就不想执行")  # 直接忽略 此方法
    # @unittest.skipIf(condition=2 > 3, reason="当判断条件为True忽略此方法")
    # @unittest.skipUnless(condition=2 > 3, reason="当判断条件为False忽略此方法")
    def test_add(self):
        """测试加法方法"""
        self.skipTest(reason="在方法体中忽略不想执行的方法")
        print(MyTestCase.add(3, 4))
        # 通过 断言 来判断测试 是否通过
        # assertEqual 是 判断 预期值  和 实际值 是否一致
        self.assertEqual(6, MyTestCase.add(3, 4))

    # 定义一个 测试  mathFunction.py 中的  减法方法
    def test_less(self):
        """测试减法方法"""
        print(MyTestCase.less(3, 4))
        self.assertEqual(-1, MyTestCase.less(3, 4))

    # 定义一个 测试  mathFunction.py 中的  乘法方法
    def test_multi(self):
        """测试乘法方法"""
        print(MyTestCase.multi(3, 4))
        self.assertEqual(12, MyTestCase.multi(3, 4))

    # 定义一个 测试  mathFunction.py 中的  除法方法
    def test_divide(self):
        """测试除法方法"""
        print(MyTestCase.divide(3, 4))
        self.assertEqual(0.77, MyTestCase.divide(3, 4))


if __name__ == '__main__':
    unittest.main(verbosity=2)
